home *** CD-ROM | disk | FTP | other *** search
- Path: hpmde1.emw.ericsson.se!emwnie
- From: emwnie@emw.ericsson.se (Linus Nielsen)
- Newsgroups: comp.sys.amiga.hardware
- Subject: Re: Technical DRAM Question.
- Date: 30 Jan 1996 06:42:38 GMT
- Organization: Ericsson
- Message-ID: <4ekeku$17d@erinews.ericsson.se>
- References: <Pine.BSD/.3.91.960128174644.5065A-100000@ecf2.puc.edu>
- NNTP-Posting-Host: hpmde1.emw.ericsson.se
- X-Newsreader: TIN [version 1.2 PL2]
-
- :=Rob=: (rldickin@puc.edu) wrote:
- : My A500s internal memory consists of 16 32k chips. Each chip has 9
- : address lines and one data line. The data lines from each of the 16 chips
- : all combine into the 16-bit data bus. The 9 address lines function as
- : both the upper 9 bits and lower 9 bits of the 18-bit CHIP memory
- : address. There are three other lines named CAS, RAS, and WE. What I
- : need to know is what the function of each of these other lines are.
-
- The DRAM memory cells are organized in a matrix where you can select a cell by
- using a row and a column address. The DRAM's in Amiga use 9-bit row and column
- addresses. So, the matrix is 512 by 512 words = 262144 = 512K bytes.
-
- CAS and RAS stand for Column Address Strobe and Row Address Strobe. These
- strobes select the address. How they are used differ somewhat between different
- DRAMS, but in general, it works the same way.
-
- WE stands for Write Enable. It is driven low when the CPU wants to write to the
- DRAM, and high when it wants to read.
-
- When the DRAM controller wants to access the DRAM it does something like this:
-
- 1) Set WE high or low depending on whether it is a read or write access.
- 2) Output the row address on the address lines to the DRAM.
- 3) Assert the RAS (Row Address Strobe).
- 4) Output the column address on the address lines to the DRAM.
- 5) Assert the CAS (Column Address Strobe).
- 6) Read or write to the data bus.
- 7) Release the RAS and the CAS when ready.
-
- : Also, the Agnus has the lines CASU, CASL, RAS0, and RAS1. One of the CAS
- : lines feed to the CAS on the memory and one of the RAS lines feed to the
- : memory. What do these lines do?
-
- UCAS and LCAS are used to select the upper or lower bytes of the memory. The
- CHIP mem is divided into two blocks, one for the upper and one for the lower byte.
- RAS0 is used to select the CHIP memory on board your Amiga, and RAS1 is used for
- the expansion memory in the expansion memory socket underneath your Amiga. If
- you have 1M och CHIP RAM, it is used to select the upper half of CHIP mem.
-
- : How does memory refreshing occur?
-
- On most DRAM's, the refreshing is done on a row-by-row basis. It is done by
- asserting the RAS and CAS strobes in the opposite order, while the DRAM itself
- selects the row address, something like this:
-
- 1) Assert CAS.
- 2) Assert RAS.
- 3) Wait a while.
- 4) Release RAS and CAS.
-
- This is done about every 4ms, depending on the refresh demands of the DRAM.
-
- It can also be done in a way called "hidden refresh". This means that the
- refresh can take place by toggling the RAS between 5) and 7) in the read
- access example above.
-
- There is also a third way, called "RAS-only" refresh. Then the DRAM controller
- selects the row address:
-
- 1) Output the row address.
- 2) Assert RAS.
- 3) Wait a while.
- 4) Release RAS.
-
-
- Well, that was a brief explanation on how it works. There is of course more
- to it than this, like burst accesses and Read-Modify-Write cycles, but at least
- you get the general idea.
-
- : Any info is much appreciated, :=Rob=:
-
- Hope you appreciated this, then. :-)
-
- /Linus
-
-